package com.lanou.mapper;

import com.lanou.entity.Consultant;
import com.lanou.entity.ConsultantLevel;
import com.lanou.entity.Course;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
@Mapper
public interface ConsultantMapper {
    // 新增咨询师
    int insertConsultant(Consultant consultant);

    // 根据ID删除咨询师
    int deleteConsultantById(int id);

    // 批量删除咨询师
    int deleteConsultantByIds(@Param("ids") List<Integer> ids);

    // 更新咨询师
    int updateConsultant(Consultant consultant);

    // 根据ID查询咨询师（级联查询等级和标签）
    Consultant selectConsultantById(Integer id);

    // 分页查询咨询师（级联查询等级）
    List<Consultant> selectConsultantByPage(Consultant consultant);

    // 根据等级ID查询咨询师
    List<Consultant> selectConsultantsByLevelId(Integer levelId);

    // 根据标签ID查询咨询师
    List<Consultant> selectConsultantsByTagId(Integer tagId);

    // 查询总记录数
    int selectTotalCount(Consultant consultant);

    List<Course> selectCoursesByConsultantId(@Param("consultantId") Integer consultantId);

    List<Consultant> selectConsultantsByFilter(
            @Param("region") String region,
            @Param("tagIds") List<Integer> tagIds,
            @Param("levelName") String levelName,
            @Param("gender") String gender

    );
    //根据咨询师等级和咨询类别级联查询
    List<Consultant> selectConsultantByLevelAndSort(@Param("levelName") String levelName, @Param("sort") String sort);
}